home *** CD-ROM | disk | FTP | other *** search
Java Source | 1998-06-30 | 4.6 KB | 140 lines |
- /*
- * @(#)DefaultTableCellRenderer.java 1.9 98/02/02
- *
- * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
- *
- * This software is the confidential and proprietary information of Sun
- * Microsystems, Inc. ("Confidential Information"). You shall not
- * disclose such Confidential Information and shall use it only in
- * accordance with the terms of the license agreement you entered into
- * with Sun.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
- * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
- * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
- * THIS SOFTWARE OR ITS DERIVATIVES.
- *
- */
-
- package com.sun.java.swing.table;
-
- import com.sun.java.swing.*;
- import com.sun.java.swing.table.TableCellRenderer;
- import com.sun.java.swing.border.*;
-
- import java.awt.Component;
- import java.awt.Color;
-
- import java.io.Serializable;
-
- /**
- * The standard class for rendering (displaying) individual cells
- * in a JTable.
- * <p>
- * Warning: serialized objects of this class will not be compatible with
- * future swing releases. The current serialization support is appropriate
- * for short term storage or RMI between Swing1.0 applications. It will
- * not be possible to load serialized Swing1.0 objects with future releases
- * of Swing. The JDK1.2 release of Swing will be the compatibility
- * baseline for the serialized form of Swing objects.
- *
- * @version 1.9 02/02/98
- * @author Philip Milne
- * @see JTable
- */
- public class DefaultTableCellRenderer extends JLabel
- implements TableCellRenderer, Serializable
- {
-
- protected static Border noFocusBorder;
-
- // We need a place to store the color the JLabel should be returned
- // to after its foreground and background colors have been set
- // to the selection background color.
- // These ivars will be made protected when their names are finalized.
- private Color unselectedForeground;
- private Color unselectedBackground;
-
- public DefaultTableCellRenderer() {
- super();
- noFocusBorder = new EmptyBorder(1, 2, 1, 2);
- setOpaque(true);
- setBorder(noFocusBorder);
- }
-
- public void setForeground(Color c) {
- super.setForeground(c);
- unselectedForeground = c;
- }
-
- public void setBackground(Color c) {
- super.setBackground(c);
- unselectedBackground = c;
- }
-
- public void updateUI() {
- super.updateUI();
- setForeground(null);
- setBackground(null);
- }
-
- public Component getTableCellRendererComponent(JTable table, Object value,
- boolean isSelected, boolean hasFocus, int row, int column) {
-
- if (isSelected) {
- super.setForeground(table.getSelectionForeground());
- super.setBackground(table.getSelectionBackground());
- }
- else {
- super.setForeground((unselectedForeground != null) ? unselectedForeground
- : table.getForeground());
- super.setBackground((unselectedBackground != null) ? unselectedBackground
- : table.getBackground());
- }
-
- setFont(table.getFont());
-
- if (hasFocus) {
- setBorder( UIManager.getBorder("Table.focusCellHighlightBorder") );
- if (table.isCellEditable(row, column)) {
- super.setForeground( UIManager.getColor("Table.focusCellForeground") );
- super.setBackground( UIManager.getColor("Table.focusCellBackground") );
- }
- } else {
- setBorder(noFocusBorder);
- }
-
- setValue(value);
-
- return this;
- }
-
- protected void setValue(Object value) {
- setText((value == null) ? "" : value.toString());
- }
-
-
- /**
- * A subclass of BasicTableCellRenderer that implements UIResource.
- * BasicTableCellRenderer doesn't implement UIResource
- * directly so that applications can safely override the
- * cellRenderer property with BasicTableCellRenderer subclasses.
- * <p>
- * Warning: serialized objects of this class will not be compatible with
- * future swing releases. The current serialization support is appropriate
- * for short term storage or RMI between Swing1.0 applications. It will
- * not be possible to load serialized Swing1.0 objects with future releases
- * of Swing. The JDK1.2 release of Swing will be the compatibility
- * baseline for the serialized form of Swing objects.
- */
- public static class UIResource extends DefaultTableCellRenderer
- implements com.sun.java.swing.plaf.UIResource
- {
- }
-
- }
-
-
-